using System;
using System.Collections.Generic;
using System.Text;
using SharpMud.Server.Systems.Scripting.Processing.Source;

namespace SharpMud.Server.Systems.Scripting.Processing
{
    public interface ICompiledScriptHandle : IDisposable
    {
        /// <summary>
        /// Get the handle of the source of the script
        /// </summary>
        IScriptSourceHandle GetSource();

        object[] GetCustomAttributes(bool inherit);
        object[] GetCustomAttributes(Type attributeType, bool inherit);
        
        void Execute(Scripting.Runtime.ScriptExecutionContext context);
        object StrongExecute(params object[] parameters);
    }
}
